//现在有n个元素的序列
//定义了一个计算公式
//现在给出一个序列 求他的所有的排列的价值  的或
#include<algorithm>
#include<iterator>
#include<iostream>
#include<vector>
using namespace std;

vector<int> arr_;

int final_value = 0;

void permutations(long long list[],int k,int m)
{	
	int value = 0;
	if(k == m)
	{
		for (int i = 0; i <= m; i++)
		{
		
			value+=(i+1)^list[i];
			
		
		}
	
		arr_.push_back(value);
		
		//final_value |=value;
	} 
	
		//这时候有多个排列，进行递归
	else
	{
		for(int i=k;i<=m;i++)
		{
			
			swap(list[k],list[i]);
			permutations(list,k+1,m);
			swap(list[k],list[i]);
			
		}
	
		
	}
}
//以1 2 3 为例子
//我传进去的是 k = 0,m = 2, 0 1 2 
//我先进入 else 控制的语句
//此时 i被赋值为0，从0到2 我要进行三次循环然后结束这个程序



int main()
{
	int num;
	cin>>num;
	long long arr[num];
	for(int i=0;i<num;i++)
	{
		cin>>arr[i];
	}
	
	permutations(arr,0,num-1);
	
	
	for (int i = 0; i < arr_.size();i++) 
	{  
		final_value |= arr_[i]; 
		
	}  
	
	cout<<final_value;
	
	return 0;
	
}
